As an increasing number of applications and services are being made available over networks such as the Internet, an increasing number of content, application, and/or service providers are turning to technologies such as cloud computing. Cloud computing, in general, is an approach to providing access to electronic resources through services, such as Web services, where the hardware and/or software used to support those services is dynamically scalable to meet the needs of the services at any given time. A user or customer typically will rent, lease, or otherwise pay for access to resources through the cloud, and thus does not have to purchase and maintain the hardware and/or software to provide access to these resources.
A customer can occasionally wish to create a copy of a data store for purposes such as testing or development. Using conventional approaches, the source data store must be taken offline and the data exported out of the data store to create a new copy. Such an approach is inefficient, requires manual intervention, and results in the unavailability of the source data store for a period of time.
Further, a data store or data instance might experience an error of a type that requires a complete recovery action. In conventional systems, this typically requires a database administrator (DBA) or similar operator to physically visit the location of the machines hosting the data store, locate the physical backups (often on tape), and execute and monitor the recovery process. Such an approach is inefficient at best, and can result in substantial downtime of the data store. Further, such an approach is limited to the data on the backup tapes, which often are archived once a day at most.